package cn.edu.sdu.sduhour.mapper;

import cn.edu.sdu.sduhour.entity.History;
import cn.edu.sdu.sduhour.entity.User;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface HistoryMapper {
    //获取所有的历史记录（管理员）
    @Select("select * from history")
    List<History> findAll();

    //获取某个人的历史记录
    @Select("select * from history where openid=#{openid}")
    List<History> findOne(History history);

    //添加某个人的历史记录
    @Insert("INSERT INTO history (`openid`,`ratio`,`right`,`wrong`,`fastest`,`all`) VALUES(#{openid},#{ratio},#{right},#{wrong},#{fastest},#{all})")
    void addOne(History history);

    //添加某个人的历史记录（用户版）
    @Insert("INSERT INTO history (`openid`,`ratio`,`right`,`wrong`,`fastest`,`all`) VALUES(#{openid},0.00,0,0,0,0)")
    void addOneByUser(User user);

    //更新某个人的历史记录
    @Update("UPDATE `sduhour`.`history` SET ${changeName}=#{changeNum} WHERE openid=#{openid}")
    void updOne(History history);

    //删除某个人的历史记录（管理员）
    @Delete("DELETE FROM `history` WHERE `openid` = #{openid}")
    void delOne(History history);

    //删除某个人的历史记录（管理员/用户版）
    @Delete("DELETE FROM `history` WHERE `openid` = #{openid}")
    void delOneByUser(User user);
}
